Блог им. toshackers |Скрипт #ThinkOrSwim для #watchlist

Изменение цены от открытия в %.
И конечно подсвечивает цветом.

Скрипт #ThinkOrSwim для #watchlist

#Colume:ChFO
#by thetrader.pro
plot Change = Round((close-open)/open*100,1);
AssignBackgroundColor(if(Change < 1 and Change > -1)then Color.BLACK else if(Change>0) then Color.DARK_GREEN else Color.DARK_RED);

Скрипт #ThinkOrSwim для #watchlist



( Читать дальше )

Блог им. toshackers |Скрипт #ThinkOrSwim для #watchlist

Колонка для ThinkOrSwim Watchlist.
Показывает разницу между ask / bid и конечно подсвечивает цветом.

 Скрипт #ThinkOrSwim для #watchlist

#Colume:Spread

#by thetrader.pro

Def Spread1= (ASK-BID)*100;

AddLabel(yes, AsText(Spread1, «%1$.0f»));

AssignBackgroundColor (if (Spread1> 6) then Color.red else Color.black);

Полная библиотека индикаторов в нашем блоге goo.gl/9JRW


Скрипт #ThinkOrSwim для #watchlist



( Читать дальше )

Блог им. toshackers |Скрипт #ThinkOrSwim для #watchlist

Скрипт #ThinkOrSwim для #watchlist .

Скрипт #ThinkOrSwim для #watchlist

Поиск проторговок на любом ценовом уровне. Имеет две настройки: 1.Максимальное отклонение от уровня базы. Показывает качество проторговки и удержания уровня. 2 Число баров для просмотра. Показывает, сколько баров база должна простоять минимально, чтоб нарисовался сигнал.

#Base.Скрипт ищет базы из N последних свечей, на любых уровнях

def iDiff = 0.01; #максимальное отклонение в центах
def iBars = 4; #число баров для просмотра
def iLowest = lowest(low,iBars);
def iHighest = highest(high,iBars);
def bBaseLow = fold Lbar = 0 to iBars with Ls=1 do if ((low[Lbar]-iLowest)<=iDiff) then Ls*1 else Ls*0;
def bBaseHigh = fold Hbar = 0 to iBars with Hs=1 do if ((iHighest-high[Hbar])<=iDiff) then Hs*1 else Hs*0;
plot bBase = if bBaseLow then 1 else if bBaseHigh then 2 else 100;
AssignBackgroundColor (if (bBase == 1) then Color.LIGHT_GREEN else if (bBase == 2) then Color.LIGHT_RED else Color.black);
bBase.AssignValueColor (if bBase <> 100 then Color.black else Color.CURRENT);

Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi


Блог им. toshackers |Скрипт #ThinkOrSwim для #watchlist

Скрипт #ThinkOrSwim для #watchlist

Ищет базы на фигурах, т.е ценах, кратных 50 и 100 центам. Настройки такие же, как и в первом фильтре баз. Такие уровни более значимые, поэтому сигналы будут наиболее надежные.

Скрипт #ThinkOrSwim для #watchlist


#Base50100.Скрипт ищет базы из N последних свечей, привязанные к уровням 50 и 100 центов.

def iDiff = 0.01; #максимальное отклонение в центах
def iBars = 4; #число баров для просмотра
def iLowest = lowest(low,iBars);
def iHighest = highest(high,iBars);
def bBaseLow = fold Lbar = 0 to iBars with Lsumm=1 do if ((low[Lbar]-iLowest)<=iDiff) then Lsumm*1 else Lsumm*0;
def bBaseHigh = fold Hbar = 0 to iBars with Hsumm=1 do if ((iHighest-high[Hbar])<=iDiff) then Hsumm*1 else Hsumm*0;
def iFigureLow = fold FLbar = 1 to iBars+1 with FLsumm do if (low[FLbar] == (Floor(low[FLbar]*2))/2) then FLsumm+1 else FLsumm;
def iFigureHigh = fold FHbar = 1 to iBars+1 with FHsumm do if (high[FHbar] == (Ceil(high[FHbar]*2))/2) then FHsumm+1 else FHsumm;
plot bBase = if (bBaseLow and iFigureLow) then 1 else if (bBaseHigh and iFigureHigh) then 2 else 100;
AssignBackgroundColor (if (bBase == 1) then Color.LIGHT_GREEN else if (bBase == 2) then Color.LIGHT_RED else Color.black);
bBase.AssignValueColor (if bBase <> 100 then Color.black else Color.CURRENT);

Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi


Блог им. toshackers |Скрипт ThinkOrSwim для watchlist

Скрипт ищет на графике свечную модель «Реверсивный разворот». Собственных настроек не имеет.

Скрипт ThinkOrSwim для watchlist


#Revers.Показывает паттерн «Реверсивный разворот»
#Cнять галочку Include Extended Session

def bSignalUp = high[1]>high[2] and close[1]>high[2] and open>high[1] and close<close[1];
def bSignalDown = high[1]<high[2] and close[1]<low[2] and open<low[1] and close>close[1];
plot out = if bSignalUp then 1 else if bSignalDown then 2 else 100;
AssignBackgroundColor (if (out == 1) then Color.LIGHT_GREEN else if (out == 2) then Color.LIGHT_RED else Color.black);
out.AssignValueColor (if out <> 100 then Color.black else Color.CURRENT);

 Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi


Блог им. toshackers |Скрипт ThinkOrSwim для watchlist

Скрипт ищет акции, в которых недавно был экстремальный объем (спайк).

Скрипт ThinkOrSwim для watchlist

Для колонки:

#Spike. Показывает акции, в которых объем последней свечи превысит средний объем
# за N предыдущих свечей на Х процентов.

# и держит взведённым сигнал X свечей

# by theTrader.pro

def iBars = 10; #число предыдущих свечей для подсчета среднего объема

def iHistory = 2; #сколько свечей держать флаг после спайка

def iPrecent = 500; #процент превышения объема

def iVolumeBreak = (volume[0]/Average(volume,iBars)[1]*100);

def b = fold index = 0 to iHistory with a = 0 do max(a,GetValue(iVolumeBreak,index));

def Signal = b > iPrecent and volume>=50000;
plot vol = volume/1000;

AssignBackgroundColor (if (Signal) then Color.Blue else Color.BLACK);

Для Сканера

#Spike. Показывает акции, в которых объем последней свечи превысит средний объем
# за N предыдущих свечей на Х процентов.
# и держит взведённым сигнал X свечей
# by theTrader.pro



( Читать дальше )

Блог им. toshackers |Скрипт ThinkOrSwim для watchlist

Сканер акций, которые недавно обновили свои экстремумы. Глубину истории (сколько держать сигнал) можно регулировать.

Скрипт ThinkOrSwim для watchlist


#Сканер NewHigh / New Low

#Aggregation 1m

#by thetrader.pro

 

input iHistory = 5; #сколько свечей держать сигнал

input marketOpen = 930;

input marketClose = 1600;

 

def OpenCounter =  SecondsFromTime(marketOpen);

def CloseCounter = SecondsTillTime(marketClose);

def MarketHours = if OpenCounter >= 0 and CloseCounter >= 0 then 1 else 0;

def Today = if GetDay() != GetDay()[1] then 1 else 0;

rec DailyHigh ;

rec DailyLow ;

 

DailyHigh = if Today then high else if MarketHours then if high > DailyHigh[1] then high else DailyHigh[1] else high;

DailyLow = if Today then low else if MarketHours then if low < DailyLow[1] then low else DailyLow[1] else low;

 

def Signal1 = DailyHigh > DailyHigh[1] or DailyLow < DailyLow[1];

plot Signal = fold index1 = 0 to iHistory with a1 = No do max(a1,GetValue(Signal1 ,index1));


Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi


Блог им. toshackers |Скрипт ThinkOrSwim для watchlist

Скрипт ThinkOrSwim для watchlist

input marketOpen = 930;
input marketClose = 1600;
input intraDaySpan = {Default «SameDay», «OverNight»};
def OpenCounter = SecondsFromTime(marketOpen);
def CloseCounter = SecondsTillTime(marketClose);
def MarketHours = if OpenCounter >= 0 and CloseCounter >= 0 then 1 else 0;
def beforeMidnight = OpenCounter >= 0 and CloseCounter <= 0;
def afterMidnight = OpenCounter <= 0 and CloseCounter >= 0;
def Today ;
def hideChartBubbles ;
rec DailyHigh ;
rec DailyLow ;
switch (intraDaySpan) {
case «SameDay»:
Today = if GetDay() != GetDay()[1] then 1 else 0;
DailyHigh = if Today then high else if MarketHours then if high > DailyHigh[1] then high else DailyHigh[1] else high;
DailyLow = if Today then low else if MarketHours then if low < DailyLow[1] then low else DailyLow[1] else low;
hideChartBubbles = MarketHours;
case «OverNight»:
Today = 0;
DailyHigh = if Today then high else if beforeMidnight or afterMidnight then if high > DailyHigh[1] then high else DailyHigh[1] else high;
DailyLow = if Today then low else if beforeMidnight or afterMidnight then if low < DailyLow[1] then low else DailyLow[1] else low;
hideChartBubbles = beforeMidnight or afterMidnight;
};
AddLabel(close > 0, Concat( «Dly High: », DailyHigh), Color.GRAY);
AddLabel(close > 0, Concat( «Dly Low: », DailyLow), Color.GRAY);
plot TodaysHigh = DailyHigh;
plot TodaysLow = DailyLow;
TodaysHigh.SetDefaultColor(Color.GREEN);

( Читать дальше )

Блог им. toshackers |Скрипт ThinkOrSwim для watchlist

Индикатор для ThinkOrSwim.
Рисует потенциальные цели в акции
относительно ее среднего движения за 14 дней.

 Скрипт ThinkOrSwim для watchlist

#Capacity_Level
#by thetrader.pro

declare once_per_bar;
declare hide_on_daily;

input length = 14;
input ShowATR = No;

def ATR = Average(TrueRange(high(period = «DAY»), close(period = «DAY»), low(period = «DAY»)), length )[1];
AddLabel (ShowATR, «ATR(«+length+») » + Round(ATR,2), Color.GRAY);

def newDay = SecondsFromTime(0930)==0;

def DayHigh = if newDay then High else if High[1] > DayHigh[1] then High[1] else DayHigh[1];
def DayLow = if newDay then Low else if Low[1] < DayLow[1] then Low[1] else DayLow[1];

plot UpLevel = If(GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN, DayLow + ATR, Double.NaN);

plot DownLevel = If(GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN,DayHigh — ATR, Double.NaN);

UpLevel.SetDefaultColor (Color.GRAY);
UpLevel.SetPaintingStrategy(PaintingStrategy.LINE);
UpLevel.SetStyle(Curve.LONG_DASH);
DownLevel.SetDefaultColor(Color.GRAY);
DownLevel.SetPaintingStrategy(PaintingStrategy.LINE);
DownLevel.SetStyle(Curve.LONG_DASH);


Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi





Блог им. toshackers |Скрипт ThinkOrSwim для watchlist

Скрипт ThinkOrSwim для watchlist

Очень полезный индикатор для ThinkORSwim для тестирования стратегий и проверки гипотез.

При помощи него можно проверить гипотезу, как работает паттерн в акциях с разным значением относительного объема .

Примеру: К примеру мой паттер в 10:30 и он классно отрабатывает только когда относительный объем больше 30%.

#Study:VolPlay
#by thetrader.pro

declare on_volume;
declare once_per_bar;

input length = 65;
def AvgVolume = Average(Volume (Period = aggregationPeriod.DAY)[1], length);

def yyyyMmDd = GetYYYYMMDD();
def Vol = if yyyyMmDd > yyyyMmDd[1] then volume else volume + Vol[1];

plot VolPlay = Round (Vol/AvgVolume,2);
VolPlay.SetDefaultColor(color = Color.GRAY);


Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi

....все тэги
UPDONW
Новый дизайн